/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package verwaltung;

import entities.Abfrage;
import entities.Nachricht;
import java.io.Serializable;
import java.util.HashSet;
import java.util.Set;
import javax.faces.bean.ApplicationScoped;
import javax.faces.bean.ManagedBean;

/**
 *
 * @author Dennis Wittkoetter <dennis.wittkoetter@hs-osnabrueck.de>
 */
@ManagedBean
@ApplicationScoped
public class NachrichtenVerwaltung implements Serializable {
    private static final String link_nachrichtHinzufuegenOK = "./eingabeBestaetigen.xhtml";
    private static final String link_nachrichtHinzufuegenFehler ="./eingabeFehler.xhtml";
    private static final String ausgabe_standard = "Treffen um 730 in KN2";
    private static final String fehler_eingabeLeer = "Feld darf nicht leer sein!";
    
    private static final long serialVersionUID = 1L;
    private Set<Nachricht> nachrichten;
    
    public NachrichtenVerwaltung() {
        nachrichten = new HashSet<Nachricht>();
    }
    
    public String nachrichtHinzufuegen(Nachricht n) {
        try {
            nachrichten.add(n);
            return link_nachrichtHinzufuegenOK;
        }
        catch (Exception e) {
            return link_nachrichtHinzufuegenFehler;
        }
    }
    
    public String nachrichtLesen(Abfrage a) {
        for (Nachricht n : nachrichten) {
            if (n.getCode1().equals(a.getCode1()) 
            &&  n.getCode2().equals(a.getCode2())
            &&  n.getAnzahl() > 0) {
                n.setAnzahl(n.getAnzahl()-1);
                return n.getNachricht();
            }
           
            System.out.println(n);
        }
        return ausgabe_standard;
    }

    public Set<Nachricht> getNachrichten() {
        return nachrichten;
    }

    public void setNachrichten(Set<Nachricht> nachrichten) {
        this.nachrichten = nachrichten;
    }

    public static String getFehler_eingabeLeer() {
        return fehler_eingabeLeer;
    }

    @Override
    public int hashCode() {
        int hash = 3;
        hash = 97 * hash + (this.nachrichten != null ? this.nachrichten.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final NachrichtenVerwaltung other = (NachrichtenVerwaltung) obj;
        if (this.nachrichten != other.nachrichten && (this.nachrichten == null || !this.nachrichten.equals(other.nachrichten))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        
        for(Nachricht n : nachrichten) {
            sb.append(n);
            sb.append('\n');
        }
        
        return sb.toString();
    }
    
    
    
}
